package cn.iocoder.yudao.module.worker.api.category;

import cn.iocoder.yudao.module.worker.api.category.dto.CategoryRespDTO;
import java.util.List;
import java.util.Map;

import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;

public interface CategoryApi {

    /**
     * 获得商品分类列表
     *
     * @param parentId 商品分类编号
     * @return 商品分类列表
     */
    List<CategoryRespDTO> getCategoryList(Long parentId);

    CategoryRespDTO getCategoryById(Long id);

    /**
     * 获得商品分类 Map
     *
     * @param parentId 商品分类编号
     * @return 商品分类 Map
     */
    default Map<Long, CategoryRespDTO> getUserMap(Long parentId) {
        List<CategoryRespDTO> list = getCategoryList(parentId);
        return convertMap(list, CategoryRespDTO::getId);
    }

    List<CategoryRespDTO> getAppCategoryList(Long parentId);

    default Map<Long, CategoryRespDTO> getAppUserMap(Long parentId){
        List<CategoryRespDTO> list = getAppCategoryList(parentId);
        return convertMap(list, CategoryRespDTO::getId);
    }
}
